To meet increasing system performance and energy requirements, many modern computing platforms use heterogeneous compute architectures (or heterogeneous computing) that use more than one type of processor or core. For example, a heterogeneous compute architecture may include a central processing unit (CPU) coupled to a one or more hardware accelerators such as a graphics processing unit (GPU), a cryptography co-processor, a network processor, an A/V encoder/decoder, and the like.
CAPI provides a high-performance solution to integrating different processors by permitting an accelerator to operate as an application extension to remove the overhead and complexity of the I/O subsystem. Put differently, using CAPI, the CPU can communicate with the accelerator in a coherent manner and share the same address space. In one example, the CPU and accelerator can transfer a pointer to a shared address space which avoids performing virtual to physical memory address translations.